
package com.example.demo.utils;


import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;
import java.util.UUID;

@Data
@Component
@ConfigurationProperties(prefix = "aliyun.oss")
public class AliOssUtils {
   private String endpoint;
   private String accessKeyId;
   private String accessKeySecret;
   private String bucketName;

        public String upload(MultipartFile file) throws Exception {


                //获取上传的文件的输入流
                InputStream inputStream = file.getInputStream();
                //避免文件重名覆盖
                String originFileName = file.getOriginalFilename();
                String fileName = UUID.randomUUID().toString() + originFileName.substring(originFileName.lastIndexOf("."));

                //上传文件到oss
                //1. 创建OSSClient实例。
                OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
                ossClient.putObject(bucketName,fileName,inputStream);

                //文件访问路径
                String url = endpoint.split("//")[0] + "//" + bucketName + "." + endpoint.split("//")[1] + "/" + fileName;

                //关闭ossClient
                ossClient.shutdown();
//            System.out.println(url);
                return url;
        }
    }
